﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Configuration;

using MySql.Data.MySqlClient;

namespace MakeIT.MiraPark.Negocios
{
    public static partial class ModelBO
    {

        public static void getTabelaConvenioXPeriodos( TabelaConvenioVO tabelaConvenioVO)
        {
            StringBuilder query = new StringBuilder();

            query.AppendLine("SELECT IdTabelaConvenioP, IdTabelaConvenio, Minutos, ValorConvenio, ValorConvenioAdicional, ValorCliente, Acumula ");
            query.AppendLine("FROM tabelaconveniop ");
            query.AppendLine("WHERE IdTabelaConvenio = ?IdTabelaConvenio ");
            query.AppendLine("ORDER BY IdTabelaConvenio, IdTabelaConvenioP ");

            MySqlCommand cmd = getConnection();
            cmd.CommandText = query.ToString();

            cmd.Parameters.AddWithValue("?IdTabelaConvenio", tabelaConvenioVO.idTabelaConvenio);

            MySqlDataReader reader = null;
            try
            {
                cmd.Connection.Open();

                reader = cmd.ExecuteReader();

                tabelaConvenioVO.tabelaConvenioPVOs.Clear();

                while (reader.Read())
                {
                    TabelaConvenioPVO tabelaConvenioPVO = TabelaConvenioPVO.CreateTabelaConvenioPVO();
                    tabelaConvenioPVO.idTabelaConvenio = reader.GetInt32("IdTabelaConvenio");
                    tabelaConvenioPVO.idTabelaConvenioP = reader.GetInt32("IdTabelaConvenioP");
                    tabelaConvenioPVO.minutos = reader.GetInt32("Minutos");
                    tabelaConvenioPVO.valorConvenio = reader.GetDecimal("ValorConvenio");
                    tabelaConvenioPVO.valorConvenioAdicional = reader.GetDecimal("ValorConvenioAdicional");
                    tabelaConvenioPVO.valorCliente = reader.GetDecimal("ValorCliente");
                    tabelaConvenioPVO.acumula = reader.GetBoolean("Acumula");

                    tabelaConvenioVO.tabelaConvenioPVOs.Add(tabelaConvenioPVO);
                }
                reader.Close();
            }
            catch (Exception ex){ throw ex; }
            finally { cmd.Connection.Close(); }
        }

        public static void setTabelaConvenioXPeriodos(List<TabelaConvenioPVO> tabelaConvenioPVOs)
        {
            foreach (TabelaConvenioPVO tabelaConvenioPVO in tabelaConvenioPVOs)
            {
                setTabelaConvenioXPeriodo(tabelaConvenioPVO);
            }
        }
        public static void setTabelaConvenioXPeriodo(TabelaConvenioPVO tabelaConvenioPVO)
        {
            StringBuilder query = new StringBuilder();

            query.AppendLine("UPDATE tabelaconveniop ");
            query.AppendLine("SET IdTabelaConvenio=?IdTabelaConvenio, Minutos=?Minutos, ValorConvenio=?ValorConvenio, ValorConvenioAdicional=?ValorConvenioAdicional, ValorCliente=?ValorCliente, Acumula=?Acumula ");
            query.AppendLine("WHERE IdTabelaConvenioP=?IdTabelaConvenioP and IdTabelaConvenio=?IdTabelaConvenio ");

            MySqlCommand cmd = getConnection();
            cmd.CommandText = query.ToString();

            cmd.Parameters.AddWithValue("?IdTabelaConvenioP", tabelaConvenioPVO.idTabelaConvenioP);
            cmd.Parameters.AddWithValue("?IdTabelaConvenio", tabelaConvenioPVO.idTabelaConvenio);
            cmd.Parameters.AddWithValue("?Minutos", tabelaConvenioPVO.minutos);
            cmd.Parameters.AddWithValue("?ValorConvenio", tabelaConvenioPVO.valorConvenio);
            cmd.Parameters.AddWithValue("?ValorConvenioAdicional", tabelaConvenioPVO.valorConvenioAdicional);
            cmd.Parameters.AddWithValue("?ValorCliente", tabelaConvenioPVO.valorCliente);
            cmd.Parameters.AddWithValue("?Acumula", tabelaConvenioPVO.acumula);

            try
            {
                cmd.Connection.Open();

                cmd.ExecuteNonQuery();
            }
            catch (Exception ex) { throw ex; }
            finally { cmd.Connection.Close(); }

        }

        public static void newTabelaConvenioXPeriodos(List<TabelaConvenioPVO> tabelaConvenioPVOs)
        {
            foreach (TabelaConvenioPVO tabelaConvenioPVO in tabelaConvenioPVOs)
            {
                newTabelaConvenioXPeriodo(tabelaConvenioPVO);
            }
        }
        public static long newTabelaConvenioXPeriodo(TabelaConvenioPVO tabelaConvenioPVO)
        {
            StringBuilder query = new StringBuilder();

            query.AppendLine("INSERT INTO tabelaconveniop ");
            query.AppendLine("SET IdTabelaConvenioP=?IdTabelaConvenioP, IdTabelaConvenio=?IdTabelaConvenio, Minutos=?Minutos, ValorConvenio=?ValorConvenio, ValorConvenioAdicional=?ValorConvenioAdicional, ValorCliente=?ValorCliente, Acumula=?Acumula ");

            MySqlCommand cmd = getConnection();
            cmd.CommandText = query.ToString();

            cmd.Parameters.AddWithValue("?IdTabelaConvenioP", tabelaConvenioPVO.idTabelaConvenioP);
            cmd.Parameters.AddWithValue("?IdTabelaConvenio", tabelaConvenioPVO.idTabelaConvenio);
            cmd.Parameters.AddWithValue("?Minutos", tabelaConvenioPVO.minutos);
            cmd.Parameters.AddWithValue("?ValorConvenio", tabelaConvenioPVO.valorConvenio);
            cmd.Parameters.AddWithValue("?ValorConvenioAdicional", tabelaConvenioPVO.valorConvenioAdicional);
            cmd.Parameters.AddWithValue("?ValorCliente", tabelaConvenioPVO.valorCliente);
            cmd.Parameters.AddWithValue("?Acumula", tabelaConvenioPVO.acumula);

            try
            {
                cmd.Connection.Open();

                cmd.ExecuteNonQuery();
                return cmd.LastInsertedId;
            }
            catch (Exception ex) { throw ex; }
            finally { cmd.Connection.Close(); }

        }

        public static void delTabelaConvenioXPeriodos(List<TabelaConvenioPVO> tabelaConvenioPVOs)
        {
            foreach (TabelaConvenioPVO tabelaConvenioPVO in tabelaConvenioPVOs)
            {
                delTabelaConvenioXPeriodo(tabelaConvenioPVO);
            }
        }
        public static void delTabelaConvenioXPeriodo(TabelaConvenioPVO tabelaConvenioPVO)
        {
            StringBuilder query = new StringBuilder();

            query.AppendLine("DELETE FROM tabelaconveniop ");
            query.AppendLine("WHERE IdTabelaConvenioP=?IdTabelaConvenioP and IdTabelaConvenio=?IdTabelaConvenio ");

            MySqlCommand cmd = getConnection();
            cmd.CommandText = query.ToString();

            cmd.Parameters.AddWithValue("?IdTabelaConvenioP", tabelaConvenioPVO.idTabelaConvenioP);
            cmd.Parameters.AddWithValue("?IdTabelaConvenio", tabelaConvenioPVO.idTabelaConvenio);

            try
            {
                cmd.Connection.Open();

                cmd.ExecuteNonQuery();
            }
            catch (Exception ex) { throw ex; }
            finally { cmd.Connection.Close(); }

        }
    }
}
